home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / Tool Chest / Games / Game Sample Code / SpriteWorld 1.0b3 / Examples / SpaceRocks / SpaceGame.h < prev    next >
Encoding:
Text File  |  1993-06-13  |  2.9 KB  |  121 lines  |  [TEXT/KAHL]

  1. ///--------------------------------------------------------------------------------------
  2. // SpaceGame.h
  3. //
  4. // Created: 6/18/92 at 8:03:00 PM
  5. // By:        Tony Myles
  6. //
  7. // Copyright © 1992 Tony Myles, All rights reserved worldwide.
  8. ///--------------------------------------------------------------------------------------
  9.  
  10.  
  11. #ifndef __SPACEGAME__
  12. #define __SPACEGAME__
  13.  
  14. #ifndef __SPRITEWORLD__
  15. #include <SpriteWorld.h>
  16. #endif
  17.  
  18. #ifndef __SPRITELAYER__
  19. #include <SpriteLayer.h>
  20. #endif
  21.  
  22. #ifndef __FRAME__
  23. #include <Frame.h>
  24. #endif
  25.  
  26. #ifndef __ROCKSPRITE__
  27. #include "RockSprite.h"
  28. #endif
  29.  
  30. #ifndef __SHIPSPRITE__
  31. #include "ShipSprite.h"
  32. #endif
  33.  
  34.  
  35. ///--------------------------------------------------------------------------------------
  36. //        space game constants
  37. ///--------------------------------------------------------------------------------------
  38.  
  39. enum
  40. {
  41.     kSplashPictID = 128,
  42.     kSuperNovaID = 500,
  43.     kNumberOfLevels = 10,
  44.     kNumberOfIntroRocks = 6
  45. };
  46.  
  47. enum
  48. {
  49.     kGameStringsResID = 200,
  50.     kGraphicsFileNameStringIndex = 1
  51. };
  52.  
  53.  
  54. ///--------------------------------------------------------------------------------------
  55. //        space game data structure
  56. ///--------------------------------------------------------------------------------------
  57.  
  58. typedef struct
  59. {
  60.     unsigned long score;
  61.     unsigned short level;
  62.     unsigned short lives;
  63.  
  64.     WindowPtr gameWindP;
  65.  
  66.     SpriteWorldPtr gameSpriteWorldP;
  67.  
  68.     SpriteLayerPtr introSpriteLayerP;
  69.     SpriteLayerPtr rockSpriteLayerP;
  70.     SpriteLayerPtr shipSpriteLayerP;
  71.     SpriteLayerPtr shotSpriteLayerP;
  72.  
  73.     SpritePtr titleSpriteP;
  74.  
  75.     ShipSpritePtr shipSpriteP;
  76.     RockSpriteInfoPtr rockSpriteInfoP;
  77. } SpaceGameRec, *SpaceGamePtr, **SpaceGameHdl;
  78.  
  79.  
  80. ///--------------------------------------------------------------------------------------
  81. //        space game function prototypes
  82. ///--------------------------------------------------------------------------------------
  83.  
  84. #ifdef __cplusplus
  85. extern "C" {
  86. #endif
  87.  
  88.  
  89. OSErr EnterSpaceGame(void);
  90. void ExitSpaceGame(void);
  91.  
  92. OSErr CreateSpaceGame(SpaceGamePtr *spaceGameP);
  93. OSErr CreateGameWindow(SpaceGamePtr spaceGameP);
  94. OSErr CreateSplashScreen(SpaceGamePtr spaceGameP);
  95. OSErr CreateGameSpriteWorld(SpaceGamePtr spaceGameP);
  96. OSErr CreateGameLayers(SpaceGamePtr spaceGameP);
  97. OSErr CreateGameSprites(SpaceGamePtr spaceGameP);
  98. void DisposeSpaceGame(SpaceGamePtr spaceGameP);
  99.  
  100. void StartSpaceGame(SpaceGamePtr spaceGameP);
  101. void PlaySpaceGame(SpaceGamePtr spaceGameP);
  102. void IdleSpaceGame(SpaceGamePtr spaceGameP);
  103. void NextShip(SpaceGamePtr spaceGameP);
  104. void NextLevel(SpaceGamePtr spaceGameP);
  105.  
  106. void GenerateStarField(GWorldPtr starGWorldP);
  107. void GenerateSuperNovae(void);
  108.  
  109. void SpaceGameEraseDrawProc(FramePtr srcFrameP, FramePtr dstFrameP,
  110.                                     Rect *srcRect, Rect *dstRect);
  111. void SpaceGameScreenDrawProc(FramePtr srcFrameP, FramePtr dstFrameP,
  112.                                     Rect *srcRect, Rect *dstRect, RgnHandle maskRgn);
  113.  
  114. void CenterRect(Rect* srcRect, Rect* dstRect);
  115.  
  116. void SetRGBColor(RGBColor *color, short red, short green, short blue);
  117.  
  118. #ifdef __cplusplus
  119. };
  120. #endif
  121. #endif    /* __SPACEGAME__ */